Time stamp replication within a wireless network

ABSTRACT

Time stamp replication within wireless networks is described. In an embodiment, a wireless station receives an input time stamp and uses this input time stamp to generate an output time stamp. The wireless station transmits the output time stamp to wireless stations in one of a number of groups which make up the wireless network. The output time stamp is generated to compensate for delays between receiving the input time stamp and transmitting the output time stamp such that output time stamp which is transmitted at a time T corresponds to the value that the input time stamp would have had if it had been received at time T (and not at a time earlier than T). This may, therefore, reduce or eliminate independent time stamp errors and jitter caused by multiple disparate systems and processes.

BACKGROUND

The Wi-Fi™ standard describes a number of different types of managementframes. One type is a beacon frame which is used to announce theexistence of a network. Beacon frames are transmitted at regularintervals to allow Wi-Fi™ stations to find and identify a network.Beacon frames include a timing synchronization function (TSF) time stampwhich is used by receiving wireless stations (STAB) to update a localfree running clock.

There are many reasons why time synchronization between Wi-Fi™ stations,or more particularly, synchronization between their local clocks, isimportant. For example where the Wi-Fi™ network is being used to streammedia (e.g. audio or video data) the clocks are used to control playback of the received media. If the local clocks in each of a pair ofloudspeakers playing the same music track (e.g. in a multi-room musicsystem) are not synchronized (where each speaker is a separate Wi-Fi™station), the audio from each speaker will not be synchronized and asthe clocks diverge (as one runs faster than the other), this will becomeaudible to a listener. Similarly, where the same music is being playedin a multi-room system, if each speaker is not synchronized, this willbe audible to a listener as they move from one room to another.

The embodiments described below are not limited to implementations whichsolve any or all of the disadvantages of known methods of synchronizingWi-Fi™ stations.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Time stamp replication within wireless networks is described. In anembodiment, a wireless station receives an input time stamp and usesthis input time stamp to generate an output time stamp. The wirelessstation transmits the output time stamp to wireless stations in one of anumber of groups which make up the wireless network. The output timestamp is generated to compensate for delays between receiving the inputtime stamp and transmitting the output time stamp such that output timestamp which is transmitted at a time T corresponds to the value that theinput time stamp would have had if it had been received at time T (andnot at a time earlier than T). This may, therefore, reduce or eliminateindependent time stamp errors and jitter caused by multiple disparatesystems and processes.

A first aspect provides a method comprising: receiving an input timestamp at a wireless station in a wireless network, the wireless networkcomprising two or more groups of wireless stations; extracting the inputtime stamp; generating an output time stamp based on the input timestamp; and transmitting a frame comprising the output time stamp towireless stations within one of the groups.

A second aspect provides a wireless station comprising: a firstcommunication interface arranged to receive an input time stamp; and asecond communication interface arranged to transmit an output time stampto wireless stations in one of a plurality of groups in a wirelessnetwork, wherein the output time stamp is generated based on the inputtime stamp.

A third aspect provides a wireless network comprising a wireless stationas described herein.

A fourth aspect provides a tangible computer readable medium comprisingcomputer program code to configure a computer to perform a method asdescribed herein.

A fifth aspect provides a computer readable storage medium havingencoded thereon computer readable program code for generating aprocessor comprising: a first communication interface arranged toreceive an input time stamp; and a second communication interfacearranged to transmit an output time stamp to wireless stations in one ofa plurality of groups in a wireless network, wherein the output timestamp is generated based on the input time stamp.

A sixth aspect provides a computer readable storage medium havingencoded thereon computer readable program code for generating aprocessor configured to perform the method described herein.

Further aspects provide a method substantially as described withreference to FIG. 3 of the drawings, a wireless station substantially asdescribed with reference to any of FIGS. 2 and 8 of the drawings and awireless network substantially as described with reference to any ofFIGS. 1, 6 and 7 of the drawings.

The methods described herein may be performed by a computer configuredwith software in machine readable form stored on a tangible storagemedium e.g. in the form of a computer program comprising computerreadable program code for configuring a computer to perform theconstituent portions of described methods or in the form of a computerprogram comprising computer program code means adapted to perform allthe steps of any of the methods described herein when the program is runon a computer and where the computer program may be embodied on acomputer readable storage medium. Examples of tangible (ornon-transitory) storage media include disks, thumb drives, memory cardsetc. and do not include propagated signals. The software can be suitablefor execution on a parallel processor or a serial processor such thatthe method steps may be carried out in any suitable order, orsimultaneously.

The hardware components described herein may be generated by anon-transitory computer readable storage medium having encoded thereoncomputer readable program code.

This acknowledges that firmware and software can be separately used andvaluable. It is intended to encompass software, which runs on orcontrols “dumb” or standard hardware, to carry out the desiredfunctions. It is also intended to encompass software which “describes”or defines the configuration of hardware, such as HDL (hardwaredescription language) software, as is used for designing silicon chips,or for configuring universal programmable chips, to carry out desiredfunctions.

The preferred features may be combined as appropriate, as would beapparent to a skilled person, and may be combined with any of theaspects of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the invention will be described, by way of example, withreference to the following drawings, in which:

FIG. 1 is a schematic diagram showing an example wireless network;

FIG. 2 shows a schematic diagram of an example master wireless station;

FIG. 3 is a flow diagram of an example method of operation of a masterwireless station, such as shown in FIG. 2;

FIG. 4 is a graph which demonstrates how an output time stamp may begenerated by extrapolating from data pairs;

FIG. 5 shows a schematic diagram of the format of an example beaconframe;

FIG. 6 shows a schematic diagram of another example wireless network;

FIG. 7 shows schematic diagrams of further example wireless networkswhich each comprise multiple domains; and

FIG. 8 illustrates various components of an exemplary computing-baseddevice which may operate as a wireless station which replicates andre-broadcasts time stamps.

Common reference numerals are used throughout the figures to indicatesimilar features.

DETAILED DESCRIPTION

Embodiments of the present invention are described below by way ofexample only. These examples represent the best ways of putting theinvention into practice that are currently known to the Applicantalthough they are not the only ways in which this could be achieved. Thedescription sets forth the functions of the example and the sequence ofsteps for constructing and operating the example. However, the same orequivalent functions and sequences may be accomplished by differentexamples.

In order to synchronize wireless stations (STAB) within a wirelessnetwork, one station, which may be an access point (AP), broadcastsframes comprising a time stamp. The time stamp is generated at thebroadcasting wireless station and is based on the value of a counter atthe broadcasting station which increments based on a free running localoscillator (i.e. an oscillator in the broadcasting wireless station).Wireless stations receiving the frames use the received time stamp tosynchronize a local counter (i.e. a counter in the receiving wirelessstation) which increments based on the “tick” of a free runningoscillator (LCO) within the receiving station. Even where all theoscillators in the wireless stations operate at the same nominal rate(e.g. 1 MHz), physical differences in the oscillators mean that theirclock rates are slightly different so that even if the counters arealigned initially they do not remain synchronized over long periods oftime.

In order to synchronize the counter at a receiving wireless station tothe counter of the broadcasting station, each time a time stamp isreceived by a wireless station it may be used to overwrite the localcounter. This limits the synchronization error between wireless stationsto the drift in the oscillators between receipt of frames comprising atime stamp. UK Patent GB2494949 describes two different techniques thatmay be used to improve the synchronization between the transmittingwireless station and the receiving wireless station. In the firsttechnique, prior to overwriting the value of the counter in thereceiving station, an error between the received time stamp value andthe current value of the counter is calculated. This error can then beused to adjust the rate of the counter in the receiving station (i.e.such that there is not necessarily a fixed relationship between a tickof the local oscillator and an increment of the counter). For example,through knowledge of the time elapsed since a previous correction (e.g.in response to receiving the previous frame), the amount of driftbetween the AP counter (which corresponds to the value of the timestamp) and the STA counter can be determined. A rate adjustment unit(which may be implemented using a phase locked loop) may then be used toincrement the STA counter at a rate much closer to the rate of the APcounter. By repeating this drift determination and adjustment of therate adjustment unit each time a new time stamp is received, the errortends towards a minimum value over a short period of time. In the secondtechnique described in UK Patent GB2494949, the STA stores a pair ofvalues corresponding to the received counter value and the current valueof the STA counter each time a new time stamp is received. Then, insteadof rate controlling the STA counter (as in the first technique), thestored pairs of values may be used by higher software layers within theSTA to monitor the drift and compensate the STA counter value.

The synchronization methods described above rely upon all the wirelessstations in the network being able to receive the frames which containthe original time stamp directly from the broadcasting station (e.g. theAP). If the wireless network is spread over an area which issufficiently large or has sufficient obstacles blocking wirelesstransmission, this may not be possible. In examples where all stationscannot receive the frames directly, the wireless stations may be dividedinto groups or domains, each comprising a subset of the wirelessstations, with each group having a master station which generates andbroadcasts frames comprising a time stamp. These time stamps areindependently generated by each master station and may start atdifferent values and/or increment at different rates such that there isno time synchronization between groups and each effectively operates asits own network. This means that in applications where the time stamp isused for a common decode process, for example to decode data (such as anaudio stream) to which time stamps have been added by a master wirelessstation, the data (e.g. the data with added time stamps) cannot bereused in multiple groups and instead time stamps must be added to thedata within each group and the resultant data distributed separatelywithin the group. This is inefficient as it wastes processing power(e.g. through the duplicated effort of generating the time stamped data)and potentially also bandwidth within the wireless network (e.g. throughthe distribution of multiple time stamped data streams). Furthermore, iftwo or more groups are using the same or overlapping wireless channels,having multiple copies of the same streaming data (e.g. with each copyhaving different added time stamps) results in competition for channelbandwidth.

Methods of time stamp replication within a wireless network aredescribed herein which enable the same time stamped data to be used inmultiple wireless groups/domains. The methods described hereinnotionally join groups of wireless stations to a single time, eventhough each group runs with a different timing clock. The methodsinvolve replication of time stamps within a wireless station whichcomprises two communication interfaces and which may operate as an AP oras a master within a domain (e.g. a P2P Group Owner within a Wi-Fi™Direct system) and broadcast frames comprising a time stamp. Thewireless station receives a time stamp in a frame on a first interface(e.g. from an AP or other master) and replicates and broadcasts the timestamp in a frame on a second interface to other wireless stations in thedomain in which it is AP/master. The two interfaces may use the samewireless protocol and frequency or they may use differentprotocols/frequencies (of which at least the second protocol is awireless protocol). In some examples, the same physical interface (e.g.the same Wi-Fi™ module) may act as both interfaces and may use timedivision multiplexing to switch between receiving a frame comprising atime stamp and re-broadcasting a time stamp in a frame. In this way, thewireless station acts as a bridge, replicating and re-broadcasting atime stamp to another group of devices.

The re-broadcast time stamp may have the same value as the received timestamp; however, in many examples, the wireless station includes a timestamp correction module which adjusts the value of the time stamp whichis broadcast (such that it is not the same value as the received timestamp) to account for any delays within the wireless station (e.g. dueto the network stack and processing). The time stamp correction modulepredicts the value of the time stamp at the receiver at the time that aframe is broadcast. In such an example, the replicated and re-broadcasttime stamp (TS_(out)) has the value that the received time stamp(TS_(in)) would have had if the receipt and re-broadcasting of timestamps occurred at exactly the same time, i.e. TS_(out)=TS_(in)+ΔTS,where ΔTS is the amount by which the counter at the station generatingthe original time stamp increments in the time between receipt of thetime stamp and re-broadcast of the time stamp at the re-broadcastingstation.

By re-broadcasting a corrected time stamp in this way, all the framesbroadcast by APs/masters within a wireless network (and across multiplegroups/domains within that network) comprise synchronized time stamps(i.e. the time stamps are unified across all domains) and wirelessstations in different domains are all synchronized even though not allwireless stations are directly receiving frames comprising time stampsfrom the same station. All the domains may therefore be described asbeing in the same time zone and the time stamps may be described asbeing in lock-step across all domains. This synchronization of timestamps across all domains enables data (e.g. time stamped audio data) tobe re-used across multiple domains (with the same accuracy) and alsomeans that the data may be generated in a different domain to the domainin which the original time stamp is generated (without any loss ofaccuracy where data is shared between domains). Additionally,reconfiguration of the wireless network is quicker and easier aswireless stations which are moved from one domain to another domain donot need to synchronize themselves to the time in the new domain. Wherethe wireless stations are portable devices (e.g. wireless speakers), auser may periodically re-arrange the devices around their home (e.g. tore-position the wireless speakers for different occasions such asparties inside, parties outside, etc.). The methods described herein mayalso be used across a number of wireless networks, such that thewireless stations in the different networks are all synchronized eventhough they are receiving frames comprising time stamps from differentmaster stations.

Wireless networks using the methods described herein may be described as“self-healing” because of the ease with which a wireless station canchange domains (e.g. due to re-positioning or failure of a masterdevice). In various examples, the network may be re-configureddynamically (e.g. during audio playback), such that a user can pick up awireless speaker and move it from one room to another and the speakercan seamlessly switch from one domain to another and continue to playback the audio as long as it continues to receive time stamp frames froma broadcasting wireless station and the audio stream from the same or adifferent wireless station. In another example scenario, a system mastermay become overloaded (e.g. due to the CPU being utilized for othertasks) and so slave stations may be moved over to a new masterseamlessly as all the clocks are synchronized.

In various examples, the different domains which are synchronized usingthe methods described herein may operate on different physical channels,where these channels may be within the same frequency band (e.g. withinthe 2.4 GHz or 5 GHz bands) or within different frequency bands (e.g.one channel in the 2.4 GHz band and one channel in the 5 GHz band). Inan example scenario there may be a first wireless network operating at2.4 GHz and a second wireless network operating at 5 GHz. If the 2.4 GHzband becomes impossible to use (e.g. due to microwave or otherinterference), wireless stations operating in the 2.4 GHz network mayself-heal and switch to the 5 GHz network and still maintain clockaccuracy due to the time stamp replication methods described hereinbeing used to synchronize the time between the two wireless networks.

The self-healing nature of the networks which use the methods describedherein to synchronize time stamps may also be used in combination with amodule within the network that selects the best wireless station to actas time keeper (and hence broadcast the original time stamps which arethen replicated by other masters). This selection may, for example, beperformed dynamically such that the time keeper wireless station maychange as the network fluctuates (e.g. in both accuracy and range).

Although many of the examples described herein relate to playing backaudio data, the methods may be used for media data, control data, etc.For example, the methods may be used in any application that requiressynchronization across an extended area (e.g. such that there are two ormore domains), e.g. in the fields of process control, manufacturing,scientific instrumentation, etc.

The term “Wi-Fi™ network” is used herein to mean a wireless local areanetwork that is based on the Institute of Electrical and ElectronicsEngineers (IEEE) 802.11 standards. The term “Wi-Fi™ station” is usedherein to mean an electronic device that has a Wi-Fi™ module that allowsthe device to exchange data wirelessly using the IEEE 802.11 standards.The term “Wi-Fi™ access point” is used herein to mean an electronicdevice that acts as a central transmitter and receiver of W-Fi™ signalsas set out in the IEEE 802.11 standards.

Although the methods and systems are described herein as being used in aWi-Fi™ network (e.g. for Wi-Fi™ groups), it will be appreciated that themethods may also be applied in other wireless networks which use someform of synchronization based on time stamps and which operate to astandard other than IEEE 802.11. The terms ‘group’ and ‘domain’ are usedinterchangeably herein to refer to a collection of wireless stations,with different groups/domains running with different timing clocks,irrespective of the standards and protocols used by those stations. Theterm ‘group’ does not limit the methods described to Wi-Fi™ Direct andthe term ‘domain’ does not limit the methods described to replicatingtime stamps between groups of wireless stations which use differentprotocols/frequencies, although the methods may be used in suchscenarios. In an example, the methods described herein may be used tosynchronize time stamps between two Wi-Fi™ domains (or two Wi-Fi™networks), one at 2.4 GHz and one at 5 GHz, where each domain (ornetwork) suffers different processing delays as the frames used totransmit the time stamps (e.g. the beacon frames) in the 5 GHz band(e.g. for IEEE 802.11n and more advanced transmission schemes) may belarger. In other examples, the methods described herein may be used tosynchronize time stamps between groups operating on different channelswithin the same frequency band (e.g. channel 1 to channel 14 within the2.4 GHz frequency band).

FIG. 1 is a schematic diagram showing a wireless network 100, which maybe a Wi-Fi™ network. The wireless network 100 comprises a number ofdomains 101-103, denoted domain A 101, domain B 102 and domain C 103.Where this is a Wi-Fi™ network, these domains may be Wi-Fi™ Directgroups. Each domain 101-103 comprises a master STA 104-106 and one ormore slave STAs 108. It will be appreciated that a wireless station maybe capable of acting as both a master and a slave STA and the labelsapplied in FIG. 1 relate to a wireless station's current role, ratherthan the capabilities of each station. The wireless network 100 shown inFIG. 1 also comprises an access point AP 110 which generates the framescomprising the original time stamp (TS) and may therefore be referred toas the ‘time keeper’ within the network 100. It will be appreciated thatin some examples, the frames comprising the original time stamp mayinstead be generated by a master STA (e.g. master STA A 104 may act asthe time keeper).

All the slave STAs 108 in domain A 101, receive the frames broadcast bythe AP 110 which comprise the original time stamp (as indicated byarrows 112) and use the time stamps received to synchronize themselvesto the AP 110 (e.g. using one of the methods described above).Additionally, master STA B 105, in domain B 102 receives the originaltime stamps (as indicated by arrow 114). The master STA B 105 may bewithin range of the AP 110 such that it also wirelessly receives theframes broadcast by the AP 110 which comprise the original time stamp(as shown in FIG. 1, as the master STA B 105 is shown in an overlappingregion between domain A 101 and domain B 102) or alternatively, themaster STA B 105 may receive the time stamps by another route (e.g. viaa wired network from AP 110). Master STA B 105 uses the time stampsreceived from the AP 110 to replicate the time stamps beforere-broadcasting them (in frames) to slave STAs 108 within domain B 102(as indicated by arrows 116). Similarly, master STA C 106 may be withinrange of the AP 110 such that it receives the frames broadcast by the AP110 which comprise the original time stamp or within range of master STAB 105 (as shown in FIG. 1, as the master STA C 106 is shown in anoverlapping region between domain B 102 and domain C 103) or the masterSTA C 106 may receive the time stamps by another route (e.g. from AP110, as indicated by arrow 118, via another network such as a wirednetwork). Master STA C 106 uses the time stamps received from the AP110/master STA B 105 to replicate the time stamps before re-broadcastingthem (in frames) to slave STAs 108 within domain C 103 (as indicated byarrows 120). It will be appreciated that although FIG. 1 shows a lineararrangement of domains (such that B connects to A and C connects to B),the domains may be arranged in any manner and further examples are shownin FIGS. 6 and 7.

The access point AP 110 and the wireless stations 104-106, 108 withinthe wireless network 100 may be computing-based devices such as desktopcomputers, laptop computers, tablet computers, smart phones, digitalradio, smart TV, games consoles, media players, etc. In some examples awireless station 104-106, 108 may be capable of functioning as an AP andso the AP 110 may be a wireless station 104-106, 108 which is currentlyacting as AP (e.g. a master node in a Wi-Fi™ system which is acting asAP). In other examples, the AP 110 may be a dedicated wirelessnetworking device that acts as an AP and may include additionalnetworking functionality (e.g. it may also act as a router) but may notbe capable of more general or non-networking functions. In variousexamples, the AP 110 and/or a wireless station 104-106, 108 may be awireless speaker.

The operation of a master STA which re-broadcasts time stamps can bedescribed with reference to FIGS. 2 and 3. FIG. 2 shows a schematicdiagram of an example master STA 200 and FIG. 3 is a flow diagram of anexample method of operation of a master STA, such as shown in FIG. 2.The master STA 200 comprises two communication interfaces 202, 204 andis arranged to receive frames via a receiver 201 and the first interface202 and to broadcast frames via the second interface 204 and transmitter205. The second interface 204 is a wireless interface which is used tobroadcast frames (via wireless transmitter 205) comprising a time stamp(TS_(out)) to slave STAs within its domain. The first interface 202 maybe a wireless interface (e.g. such that the master STA can receiveframes wirelessly from either a master STA in another domain or from anAP, as shown in FIG. 1) or may be a wired interface and hence thereceiver 201 may be a wired or wireless receiver. In various examples,the first interface 202 may be a Wi-Fi™ interface or a wired interface(e.g. a wired interface which uses similar packetization and managementframes to Wi-Fi™). In various examples, the second interface 204 may bea Wi-Fi™ interface. In various examples, the first and second interfaces202, 204 may be the same interface which switches between receivingframes (via receiver 201) and transmitting frames (via transmitter 205).In various examples, the first and second interfaces 202, 204 may bothbe wireless interfaces (e.g. they may both be Wi-Fi™ interfaces) but mayuse different frequencies (e.g. one may use 2.4 GHz and the other mayuse 5 GHz) or different physical channels within the same frequencyband.

As shown in FIG. 3, the master STA 200 receives a time stamp (block301), referred to herein as the input time stamp, TS_(in). In variousexamples, the time stamp is received within a frame via the receiver 201and first interface 202 (block 302) and the first interface 202 extractsthe input time stamp from the frame (block 304). The master STA thengenerates an output (or replicated) time stamp, TS_(out), based on theinput time stamp (block 306) and then broadcasts a frame comprising theoutput time stamp to associated stations in its domain via the secondinterface 204 and transmitter 205 (block 308). In some examples,TS_(in)=TS_(out); however, in many examples, the master STA 200 furthercomprises a time stamp correction module 206 and TS_(in)≠TS_(out).

The generation of the output time stamp (in block 306) may compriseapplying a correction, ΔTS, to the input time stamp in the correctionmodule, where the correction compensates for any delay within the masterSTA 200 between receiving the frame comprising the input time stamp (inblock 302) and broadcasting the frame comprising the output time stamp(in block 308). These delays may for example be processing delays and/ornetwork stack delay. The time stamp correction module 206 may thereforepredict the current value of the time stamp at the receiver at the timethe time stamp is re-broadcast from the transmitter. In some examples,the correction, ΔTS, may be explicitly calculated and then added to theinput time stamp to generate the output time stamp; however in otherexamples, the correction, ΔTS, is not explicitly calculated whengenerating the output time stamp.

There are a number of ways in which the output time stamp, TS_(out)and/or correction, ΔTS, may be calculated by the correction module 206and/or by other parts of the master STA (in block 306) and in variousexamples, the output time stamp and/or correction may be calculated withreference to a clock within the master STA, such as a local oscillatoror system clock 208 (which may also be referred to as a common eventclock and may operate a much higher frequency than the physical layerclock). The system clock may, for example, be implemented as a softwarecontrol loop within a system on chip (SoC) and is accessible by allparts of the SoC. In such an example, the first interface 202 stores apair of values each time a time stamp is received by the first interface202 (block 310). The pair of values comprises the time stamp valuereceived and the value of a counter 210 (which increments at the samerate as the local oscillator/system clock 208) at the time the timestamp value was received. These stored data pairs are then used (e.g. bythe correction module 206) to generate the output time stamp byextrapolating from known data points corresponding to stored pairs(block 312). This can be described with reference to FIG. 4.

FIG. 4 shows a graph with counter values the x-axis and time stampvalues on the y-axis. Given two stored data pairs {C₁, TS₁} and {C₂,TS₂} (indicated by arrows 402, 404), if the value of the counter 210 atthe time the output time stamp is generated has a value C₃, then byextrapolating from the stored data pairs, the output time stamp isgenerated having the value TS₃. In this example, referring back to thepreviously used notation, TS_(in)=TS₂, TS_(out)=TS₃ and ΔTS=TS₃−TS₂.Although FIG. 4 shows a method which calculates TS_(out) without firstexplicitly calculating ΔTS, it will be appreciated that theextrapolation could use correction values (rather than actual TS values)and explicitly calculate the correction value which is applied to theinput time stamp.

The correction of the time stamp (in block 306) may also be performed inother ways. In another example, the input time stamp (TS_(in)) may beused to overwrite a local counter driven by a local oscillator and thevalue of the output (or replicated) time stamp (TS_(out)) may generatedbased on the value of the local counter at the time the frame is (orpredicted to be) broadcast. This local counter may be referred to as a‘self-maintained local time stamp counter’. In order to increase theaccuracy of the local counter, in various examples, prior to overwritingthe value of the local counter, an error between the input time stampvalue (TS_(in)) and the current value of the counter is calculated. Thiserror can then be used to adjust the rate of the counter in thereceiving station (i.e. such that there is not necessarily a fixedrelationship between a tick of the local oscillator and an increment ofthe counter). For example, through knowledge of the time elapsed since aprevious correction (e.g. in response to receiving the previous framecomprising a time stamp), the amount of drift between the local counterand the master time stamp can be determined. A rate adjustment unit(which may be implemented using a phase locked loop) may then be used toincrement the local counter at a rate much closer to the rate of mastertime stamp. By repeating this drift determination and adjustment of therate adjustment unit each time a new time stamp is received, the errortends towards a minimum value over a short period of time.

The methods described herein may be used in combination with othermethods of maintaining clocks (e.g. using methods defined in IEEE802.11v). In such an example, another standard method (such as IEEE802.11v) may be used to maintain the clocks in domains which are capableof operating to that standard and the time stamp replication methodsdescribed herein may be used to replicate the time into domains whichare not capable of operating to that standard (e.g. non IEEE 802.11vdomains).

As described above, in various examples, the wireless network 100 may bea WiFi™ network and in which case the time stamps may be broadcastwithin beacon frames. FIG. 5 shows a schematic diagram of the format ofan example beacon frame 500. In this example, the beacon frame is asdefined by the Wi-Fi™ standard, although as described above, the methodsdescribed herein are not limited to use with Wi-Fi™ and may be used withother wireless standards. The beacon frame 500 shown is an example of anIEEE 802.11 management frame and to ensure that all access points andstations in a Wi-Fi™ network can properly identify management framesthey have a standard frame format shown in the upper part of FIG. 5,with different management frames having a different format for the framebody portion 504, which is shown in more detail for a beacon frame inthe lower part of FIG. 5.

The part of the beacon frame 500 which is common to all managementframes comprises a MAC (Media Access Control) header portion 502, aframe body portion 504, and a frame control portion 506. The MAC headerportion 502 comprises a frame control field 508, a duration field 510, adestination address field 512, a source address field 514, a BasicService Set Identification (BSSID) field 516, and a sequence controlfield 518. As is known to those of skill in the art a single accesspoint together with all associated stations is called a Basis ServiceSet (BSS). The access point acts as master to the stations within thatBSS. Each BSS is identified by a BSSID. In an infrastructure BSS, theBSSID is the MAC address of the access point.

According to the IEEE 802.11 standard, the frame body portion 504 of abeacon frame comprises a time stamp field 522, a beacon interval field524, a capability information field 526, and an SSID field 528. The timestamp field 522 comprises the value of the timing synchronizationfunction (TSF) time of the device that transmitted the beacon frame. Thebeacon interval field 524 comprises the time interval between beaconframe transmissions of the transmitting device expressed in time units(TUs). The capability field 526 comprises the information about thecapability of the network and/or device. It may include information,such as, but not limited to, the mode of operation (ad hoc orinfrastructure), support for polling, encryption etc. The SSIDinformation element 528 specifies the SSID or SSIDs used by thetransmitting device. As is known to those of skill in the art an SSID isa sequence of alphanumeric characters (letter or numbers) that uniquelydefines a Wi-Fi™ network. All access points and stations attempting toconnect to a specific Wi-Fi™ network use the same SSID.

The frame body 504 of a beacon frame may optionally also comprise one ormore optional fields 530, 532, 534. Optional fields may comprise, butare not limited to, a supported rates field, a frequency-hopping (FH)parameter set field, a direct-sequence (DS) parameter set field, acontention-free (CF) parameter set field, an IBSS parameter set field, atraffic indication map (TIM) field, and a vendor specific field 534(which may be used to carry information not defined in the IEEE 802.11standards). The IEEE 802.11 standards specify the order in which theoptional fields are to be placed in the frame body 504. In particular,the IEEE 802.11 standards specify that the vendor specific field 534 isto be the last field in the frame body 504 of a beacon frame.

Where the wireless network 100 is a Wi-Fi™ network, each subsequentdomain 102, 103 (i.e. those domains which do not receive beacon framesdirectly from the AP 110) may be a Wi-Fi™ Direct Group with the STAslaves 108 in those groups being peer-to-peer (P2P) clients and the STAmasters 105, 106 in the subsequent domains being P2P Group Owners (P2PGOs).

FIG. 6 shows a schematic diagram of another wireless network 600 inwhich the methods described herein may be implemented. The wirelessnetwork 600 comprises a plurality of wireless speakers 601-604 (or othermedia playback devices), an access point 606 and a control point 608.The control point (CP) 608 provides control data for the wirelessnetwork and may, for example, be an application running on a smart phoneor other computing device. In this example, audio data is streamed froma remote source 609, for example via the internet or other network 610.

Using the control point 608, a user is able to control the operation ofthe wireless network 600, e.g. to browse content (e.g. to select tracksto be played), control playback (e.g. by pausing, fast forwarding, etc.)and select speakers on which content is to be played. Based on theselected speakers (e.g. speakers 601-604) and their connectivity andcapabilities, one or more masters are designated. In the example shownin FIG. 6, two masters are designated: the session master 601 in room 1(as indicated by the dashed area 614) and a local master 603 in room 2(as indicated by the dashed area 616). Two masters are used because ofthe arrangement of the speakers 601-604 which means that there is nosingle speaker that can communicate directly with all the otherspeakers. Control data (indicated by dashed arrows 612) is distributedthroughout the network 600 from the control point via the session master601 and AP 606.

The session master 601 retrieves the audio stream from the remote source609 via the network 610 and access point 606 (as indicated by solidarrows 618) and adds time stamps to the audio stream. The time stampedaudio stream is sent from the session master 601 to the local master 603in room 2 via the AP 606 (indicated by arrows 620) and then each slavespeaker 602, 604 streams audio data direct from their local masters(i.e. the master with whom they have direct communications), such thatspeaker 602 streams the time stamped audio stream from session master601 and speaker 604 streams the time stamped audio stream from the localmaster 603 (indicated by dashed arrows 622).

In order that the speakers in room 2 can use the time stamped audiostream generated by the session master 601 (i.e. in order that there isonly one resource master which adds time stamps to the data), themethods described herein are used to ensure that the two rooms are partof the same time zone. In this example configuration, both masters 601,603 receive frames from the AP 606 comprising the original time stamps.Both masters 601, 603 replicate and re-broadcast the time stamps (e.g.using the method shown in FIG. 3) such that the re-broadcast time stampsare in lock-step with (i.e. synchronized to) the original time stampsgenerated by the AP 606.

FIG. 7 shows schematic diagrams of further wireless networks 71-73 whicheach comprise multiple domains 701. Each domain comprises a master whichbroadcasts frames including a time stamp (e.g. beacon frames) and anymaster which does not receive the original time stamps acts as a bridgeand replicates and re-broadcasts frames comprising time stamps which aresynchronized with the original time stamps. In the diagrams in FIG. 7,the device which broadcasts the frames comprising the original timestamps (and hence acts as time keeper) is depicted by a rectangle 702(where this may be a master STA or an AP), master STAs which act as abridge are depicted by a black circle 704 and slave STAs are depicted asan unfilled circle 706.

In the first example network 71 in FIG. 7, there are two master STAswhich receive the frames comprising the original time stamps wirelesslyand one master STA which receives the original time stamps via analternative means (e.g. via another network 710). The domain which isnot shown as overlapping with the other domains may be geographicallyco-located with the other domains (e.g. it may represent another roomwithin the same building or an area outside a building with theoverlapping domains representing rooms within a building) or it may begeographically separated from the other domains. In the second examplenetwork 72, each of the master STAs which do not broadcast the originaltime stamps receive the original time stamps via another network 710.The third example network 73 shows a more meshed network where there issignificant overlap between domains and more than one wireless stationthat could act as a master within any domain. This means that should themaster STA 730 be moved, switched off by a user or fail, one of theslave STAs 732 could become master and start replicating andre-broadcasting time stamps which are in lock-step with the originaltime stamps. Similarly, if a user re-arranges the stations such thatslave STA 734 is moved to the position marked by a dotted circle 736 (asindicated by the double arrow), it switches domains but as it is alreadysynchronized to the original time stamps (broadcast by STA 702), it cancontinue to operate without any delay while it becomes synchronized toits new master.

As shown in the first example network 71, a network may further comprisea time keeper selection element 740 which is arranged to select one ofthe masters within the network to be the time keeper (e.g. the strongestmaster) and hence generate the original time stamps. The time keeperselection element 740 may use one or more parameters to make theselection (e.g. the robustness of signal strength, the range ofbroadcasts generated by a master, the resources of the wireless station,signal quality, the effective bit error rate as determined by the biterror rate and speed negotiation algorithms, etc.). In an example, anewer wireless station that offers both 2.4 GHz and 5 GHz interfaces maybe selected as time keeper ahead of an older wireless station that onlyoffers a 2.4 GHz interface. The time keeper selection element 740 mayoperate dynamically such that the time keeper changes as the networkconditions or arrangement of wireless stations change. Upon switchingtime keeper, there may be a hand-over process between the old timekeeper and the new time keeper.

The methods of time stamp replication described herein may be used eachtime a frame comprising a time stamp (e.g. an input time stamp) isreceived by a master STA. The more frequently the time stamps arebroadcast, the less jitter there is and the absolute timing errorsbetween STAs are smaller; however, the frames consume bandwidth. In asystem which requires high data flow but which can accommodate lessaccuracy in timing synchronization, the frames comprising the timestamps may be broadcast less frequently. In various examples this may beimplemented dynamically with the frequency of time stamp broadcast beingadjusted in order that the accuracy and/or data flow remains withinpredefined ranges.

FIG. 8 illustrates various components of an exemplary computing-baseddevice 800 which may be implemented as any form of a computing and/orelectronic device, and which may operate as a wireless station whichreplicates and re-broadcasts time stamps, as described above.

Computing-based device 800 comprises one or more processors 802 whichmay be microprocessors, controllers or any other suitable type ofprocessors for processing computer executable instructions to controlthe operation of the device in order to operate as a wireless station.In some examples, for example where a system on a chip architecture isused, the processors 800 may include one or more fixed function blocks(also referred to as accelerators) which implement a part of the methodof operation in hardware (rather than software or firmware), e.g. thecorrection of the time stamp. Platform software comprising an operatingsystem 804 or any other suitable platform software may be provided atthe computing-based device to enable application software 806, 808 to beexecuted on the device. This application software may, for example,comprise a time stamp correction module 806 where this is implemented insoftware rather than in hardware. The application software may comprisea module which generates time stamp—counter value pairs, where this isdone separately from the time stamp correction (alternatively this maybe implemented in hardware within the computing-based device 800).

The computer executable instructions may be provided using anycomputer-readable media that is accessible by computing-based device800. Computer-readable media may include, for example, computer storagemedia such as memory 810 and communications media. Computer storagemedia (i.e. non-transitory machine readable media), such as memory 810,includes volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer readable instructions, data structures, program modules orother data. Computer storage media includes, but is not limited to, RAM,ROM, EPROM, EEPROM, flash memory or other memory technology, CD-ROM,digital versatile disks (DVD) or other optical storage, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or any other non-transmission medium that can be usedto store information for access by a computing device. In contrast,communication media may embody computer readable instructions, datastructures, program modules, or other data in a modulated data signal,such as a carrier wave, or other transport mechanism. As defined herein,computer storage media does not include communication media. Althoughthe computer storage media (i.e. non-transitory machine readable media,e.g. memory 810) is shown within the computing-based device 800 it willbe appreciated that the storage may be distributed or located remotelyand accessed via a network or other communication link (e.g. using oneor communication interfaces 812, 814). The memory 820 may be used tostore time stamp—counter value pairs for use in replicating the originaltime stamp, where the counter value may be the value of counter 816which increments based on the physical layer clock 818 or the systemclock 820 (as shown in FIG. 8).

The computing-based device 800 is shown comprising two communicationinterfaces 812, 814 although as described above, in some examples asingle communication interface may be used. The computing-based device800 receives frames via the first interface 812 and broadcasts framesvia the second interface 814 and these two interfaces may use the samecommunication protocol or different protocols. In some examples, bothinterfaces may be within the same silicon chip.

The computing-based device 800 may comprise one or more clocks, such asa physical layer clock 818 and/or a system clock 820. Each of theseclocks may comprise a counter (e.g. counter 816) and either or both ofthese counters may be reset and/or rate adjusted based on a time stampreceived in order to synchronize the computing-based device with otherwireless stations.

The computing-based device 800 may also comprise an input/outputcontroller 822 arranged to output display information to a displaydevice (which may be separate from or integral to the computing-baseddevice) and to receive and process input from one or more devices, suchas a user input device (e.g. a button, a mouse or a keyboard), etc.

The methods described above may be used to synchronize different domainswithin a wireless network, where slave wireless stations in a domainreceive time stamps from a master wireless station (or AP) within thedomain. In only one of the domains do the slave wireless stationsreceive the original time stamps. In the other domains, the time stampsreceived by a slave wireless station have been replicated by the masterwireless station, which acts as a bridge between domains. The masterstation may receive the original time stamps or time stamps replicatedby another master station and the time stamps may be received wirelesslyor via a wired link. As a result of the synchronization between domains,time stamped data (e.g. audio data) may be reused across domains and invarious examples, the time stamped data may be generated in a differentdomain to the wireless station which generates the original time stamps.Furthermore, the synchronization between domains makes the networkeasier and quicker to reconfigure and/or recover after a failure of amaster wireless station.

The term ‘processor’ and ‘computer’ are used herein to refer to anydevice, or portion thereof, with processing capability such that it canexecute instructions. The term ‘processor’ may, for example, includecentral processing units (CPUs), graphics processing units (GPUs orVPUs), physics processing units (PPUs), digital signal processors(DSPs), general purpose processors (e.g. a general purpose GPU),microprocessors, any processing unit which is designed to acceleratetasks outside of a CPU, etc. Those skilled in the art will realize thatsuch processing capabilities are incorporated into many differentdevices and therefore the term ‘computer’ includes set top boxes, mediaplayers, digital radios, PCs, servers, mobile telephones, personaldigital assistants and many other devices.

Those skilled in the art will realize that storage devices utilized tostore program instructions can be distributed across a network. Forexample, a remote computer may store an example of the process describedas software. A local or terminal computer may access the remote computerand download a part or all of the software to run the program.Alternatively, the local computer may download pieces of the software asneeded, or execute some software instructions at the local terminal andsome at the remote computer (or computer network). Those skilled in theart will also realize that by utilizing conventional techniques known tothose skilled in the art that all, or a portion of the softwareinstructions may be carried out by a dedicated circuit, such as a DSP,programmable logic array, or the like.

Memories storing machine executable data for use in implementingdisclosed aspects can be non-transitory media. Non-transitory media canbe volatile or non-volatile. Examples of volatile non-transitory mediainclude semiconductor-based memory, such as SRAM or DRAM. Examples oftechnologies that can be used to implement non-volatile memory includeoptical and magnetic memory technologies, flash memory, phase changememory, resistive RAM.

A particular reference to “logic” refers to structure that performs afunction or functions. An example of logic includes circuitry that isarranged to perform those function(s). For example, such circuitry mayinclude transistors and/or other hardware elements available in amanufacturing process. Such transistors and/or other elements may beused to form circuitry or structures that implement and/or containmemory, such as registers, flip flops, or latches, logical operators,such as Boolean operations, mathematical operators, such as adders,multipliers, or shifters, and interconnect, by way of example. Suchelements may be provided as custom circuits or standard cell libraries,macros, or at other levels of abstraction. Such elements may beinterconnected in a specific arrangement. Logic may include circuitrythat is fixed function and circuitry can be programmed to perform afunction or functions; such programming may be provided from a firmwareor software update or control mechanism. Logic identified to perform onefunction may also include logic that implements a constituent functionor sub-process. In an example, hardware logic has circuitry thatimplements a fixed function operation, or operations, state machine orprocess.

Any range or device value given herein may be extended or alteredwithout losing the effect sought, as will be apparent to the skilledperson.

It will be understood that the benefits and advantages described abovemay relate to one embodiment or may relate to several embodiments. Theembodiments are not limited to those that solve any or all of the statedproblems or those that have any or all of the stated benefits andadvantages.

Any reference to ‘an’ item refers to one or more of those items. Theterm ‘comprising’ is used herein to mean including the method blocks orelements identified, but that such blocks or elements do not comprise anexclusive list and an apparatus may contain additional blocks orelements and a method may contain additional operations or elements.Furthermore, the blocks, elements and operations are themselves notimpliedly closed.

The term ‘subset’ is used herein to refer to a proper subset, such thata subset does not comprise all the members of the set.

The steps of the methods described herein may be carried out in anysuitable order, or simultaneously where appropriate. The arrows betweenboxes in the figures show one example sequence of method steps but arenot intended to exclude other sequences or the performance of multiplesteps in parallel. Additionally, individual blocks may be deleted fromany of the methods without departing from the spirit and scope of thesubject matter described herein. Aspects of any of the examplesdescribed above may be combined with aspects of any of the otherexamples described to form further examples without losing the effectsought. Where elements of the figures are shown connected by arrows, itwill be appreciated that these arrows show just one example flow ofcommunications (including data and control messages) between elements.The flow between elements may be in either direction or in bothdirections.

It will be understood that the above description of a preferredembodiment is given by way of example only and that variousmodifications may be made by those skilled in the art. Although variousembodiments have been described above with a certain degree ofparticularity, or with reference to one or more individual embodiments,those skilled in the art could make numerous alterations to thedisclosed embodiments without departing from the spirit or scope of thisinvention.

The invention claimed is:
 1. A method comprising: receiving an inputtime stamp at a first wireless station in a wireless network, thewireless network comprising two or more groups of wireless stations;storing a data pair comprising the received input time stamp and a valueassociated with a local clock at the first wireless station when theinput time stamp was received; determining an output time stamp from anextrapolation of at least two stored data pairs and a predicted value ofthe local clock when the output time stamp will be transmitted, whereineach stored data pair comprises an earlier received input time stamp andan earlier value of the local clock at the time the earlier input timestamp was received; and transmitting a frame comprising the output timestamp to wireless stations within one of the groups.
 2. The methodaccording to claim 1, wherein receiving an input time stamp comprises:receiving a frame comprising an input time stamp; and extracting theinput time stamp from the received frame.
 3. The method according toclaim 2, wherein the frames are beacon frames.
 4. The method accordingto claim 2, wherein the frame comprising an input time stamp is receivedvia a first communication interface and the frame comprising the outputtime stamp is transmitted via a second communication interface.
 5. Themethod according to claim 4, wherein the wireless station comprises asingle communication interface which operates as both the first andsecond communication interfaces.
 6. The method according to claim 1,wherein the input time stamp is: an original time stamp generated by anaccess point in the wireless network; or a time stamp received from amaster station in another group and generated by the master stationbased on an input time stamp received by the master station.
 7. Themethod according to claim 1, wherein the input time stamp is a timestamp received from a master station in another group and generated bythe master station based on an input time stamp received by the masterstation and wherein the input time stamp received by the master stationis an original time stamp generated by an access point in the wirelessnetwork.
 8. The method according to claim 1, wherein the frame is abeacon frame.
 9. The method according to claim 1, wherein the wirelessstation is a Wi-Fi™ station.
 10. The method according to claim 1,wherein the wireless station is a wireless speaker.
 11. The methodaccording to claim 1, wherein the first wireless station comprises acounter, the method further comprising: incrementing the counter basedon said local clock at the first wireless station.
 12. The methodaccording to claim 1, wherein the transmitted frame comprising theoutput time stamp has a format which replicates the format of a receivedframe providing the input time stamp.
 13. A wireless station comprising:a local clock; a first communication interface arranged to receive aninput time stamp and to store a data pair comprising the received inputtime stamp and a value associated with the local clock when the inputtime stamp was received; a time stamp correction module arranged todetermine an output time stamp from an extrapolation of two stored datapairs and a predicted value of the local clock when the output timestamp will be transmitted, wherein each stored data pair comprises anearlier received input time stamp and an earlier value of the localclock at the time the earlier input time stamp was received; and asecond communication interface arranged to transmit the output timestamp to wireless stations in one of a plurality of groups in a wirelessnetwork.
 14. The wireless station according to claim 13, wherein theinput time stamp is received in a frame and the first communicationinterface is arranged to extract the input time stamp from the receivedframe.
 15. The wireless station according to claim 13, furthercomprising a counter, wherein the value is a value of the counterincremented based on the local clock.
 16. The wireless station accordingto claim 13, comprising an interface module arranged to operate as boththe first and the second communication interfaces.
 17. The wirelessstation according to claim 13, wherein one of the first and the secondcommunication interfaces is a wireless interface or wherein both thefirst and the second communication interfaces are wireless interfaces.18. The wireless station according to claim 13, wherein both the firstand the second communication interfaces are wireless interfaces andwherein the first and second communication interfaces operate ondifferent channels within a single frequency band.
 19. The wirelessstation according to claim 13, wherein both the first and the secondcommunication interfaces are wireless interfaces and wherein the firstand second communication interfaces operate in different frequencybands.
 20. The wireless station according to claim 13, wherein the firstcommunication interface is a wired interface.
 21. A non-transitorycomputer readable storage medium having stored thereon computer readableinstructions that, when processed at a computer system for generating amanifestation of an integrated circuit, cause the computer system togenerate a manifestation of an integrated circuit comprising: a counter;a first communication interface arranged to receive an input time stampand to store a data pair comprising the received input time stamp and avalue of the counter when the input time stamp was received; a timestamp correction module arranged to determine an output time stamp froman extrapolation of two stored data pairs and a predicted value of thelocal clock when the output time stamp will be transmitted, wherein eachstored data pair comprises an earlier received input time stamp and anearlier value of the local clock at the time the earlier input timestamp was received; and a second communication interface arranged totransmit the output time stamp to wireless stations in one of aplurality of groups in a wireless network.